package com.fcml.pattern.observer.subject;

import com.fcml.pattern.observer.observer.Observer;

/**
 * @author fcml
 * @date 2018/11/3
 *
 * 主题接口，即消息发布者接口
 * 提供注册、移除观察/订阅者的功能；提供通知所有观察/订阅者的功能
 */
public interface Subject {

    /**
     * 注册一个观察者
     */
    void registerObserver(Observer observer);

    /**
     * 移除一个观察者
     */
    void removeObserver(Observer observer);

    /**
     * 通知所有观察者
     */
    void notifyObservers();
}
